Providing a search results document that includes a user interface for performing an action in connection with a web page identified in the search results document

ABSTRACT

A computer device is configured to identify a document; determine that the document includes an annotation, the annotation describing a user interface that is to be visually displayed in connection with information identifying the document when the information identifying the document is included in a search results document, the user interface including a user interface element that, when selected, causes an action to be performed in connection with the document, and the action being performed without obtaining the document after the user interface element is selected; determine information relating to the user interface based on the annotation; and store, in a search index, the information relating to the user interface in association with the information identifying the document.

BACKGROUND

Many techniques are available to users today to find information on theWorld Wide Web (“web”). For example, users often use web browsers and/orsearch engines to find information of interest.

SUMMARY

According to some possible implementations, a method may include:identifying, by at least one of one or more computing devices, adocument; determining, by at least one of the one or more computingdevices, that the document includes an annotation, the annotationdescribing a user interface that is to be visually displayed inconnection with information identifying the document when theinformation identifying the document is included in a search resultsdocument, the user interface including a user interface element that,when selected, causes an action to be performed in connection with thedocument, and the action being performed without obtaining the documentafter the user interface element is selected; obtaining, by at least oneof the one or more computing devices and based on the annotation,information relating to the user interface; and storing, by at least oneof the one or more computing devices and in a search index, theinformation relating to the user interface in association with theinformation identifying the document.

According to some possible implementations, the user interface elementmay correspond to a second user interface element that is included thedocument, and the second user interface element may cause the action tobe performed when the second user interface element is selected whilethe document is displayed at a user device.

According to some possible implementations, obtaining the informationrelating to the user interface may include: determining that theannotation includes a reference pointing to a second document;obtaining, based on the reference, the second document from a server;and extracting the information, relating to the user interface, from thesecond document.

According to some possible implementations, obtaining the informationrelating to the user interface may include: determining, based on theannotation, that the document includes a particular type of annotation;extracting the annotation and one or more other annotations, of theparticular type, from the document; and determining the informationrelating to the user interface based on the annotation and the one ormore other annotations.

According to some possible implementations, the method may furtherinclude: determining a metric based on at least one of a source of thedocument or a type of the user interface element; storing, in the searchindex, the metric in association with the information identifying thedocument; and using the metric to determine whether the user interfaceis to be visually displayed when the information identifying thedocument is included in the search results document.

According to some possible implementations, the method may furtherinclude: receiving a query from a user device; identifying a list ofdocuments based on the query, the list of documents including thedocument; obtaining, from the search index, the information relating tothe user interface; including, in the search results document,information for causing the user interface to be displayed in connectionwith the information identifying the document; and providing the searchresults document to the user device.

According to some possible implementations, including the informationfor causing the user interface to be displayed in connection with theinformation identifying the document includes: obtaining, from thesearch index, a metric that is stored in association with theinformation identifying the document, determining whether the metricsatisfies a threshold, and including, in the search results document,the information for causing the user interface to be displayed inconnection with the information identifying the document based on themetric satisfying the threshold.

According to some possible implementations, the method may furtherinclude: receiving a query from a user device; obtaining a ranked listof documents results based on the query, the ranked list of documentsincluding the document; determining whether a ranking of the document,in the ranked list of documents, satisfies a threshold; and including,in the search results document, information for causing the userinterface to be displayed in connection with the information identifyingthe document based on the ranking satisfying the threshold.

According to some possible implementations, a computer-readable mediummay include a plurality of instructions, which when executed by at leastone processor, may cause the at least one processor to: identify adocument; determine that the document includes an annotation, theannotation describing a user interface that is to be visually displayedin connection with information identifying the document when theinformation identifying the document is included in a search resultsdocument, the user interface including a user interface element that,when selected, causes an action to be performed in connection with thedocument, and the action being performed without obtaining the documentafter the user interface element is selected; determine informationrelating to the user interface based on the annotation; and store, in asearch index, the information relating to the user interface inassociation with the information identifying the document.

According to some possible implementations, the plurality ofinstructions may further cause the at least one processor to: determinea metric, for the user interface, based on a measure of quality of thedocument; and store, in the search index, the metric in association withthe information identifying the document.

According to some possible implementations, the plurality ofinstructions may further cause the at least one processor to: receive aquery; identify a list of documents based on the query, the list ofdocuments including the document; obtain the metric based on theinformation relating to the document; determine whether the metricsatisfies a threshold; include, in the search results document,information for causing the user interface to be displayed in connectionwith the information identifying the document based on the metricsatisfying the threshold; and provide the search results document to auser device.

According to some possible implementations, the plurality ofinstructions may further cause the at least one processor to: determinea second metric based on second information relating to a seconddocument in the list of documents; determine whether the second metricsatisfies the threshold; and include, in the search results document andbased on the second information relating to the second document,information for causing a second user interface to be displayed inconnection with the second information identifying the second documentbased on the second metric satisfying the threshold.

According to some possible implementations, the document may be a webpage, and the user interface element may be at least one of a button ora text entry field.

According to some possible implementations, the document may include asecond user interface element that corresponds to the user interfaceelement, and the action may be performed when a second user interfaceelement is selected while the document is displayed by a user device.

According to some possible implementations, a system may include aprocessor to: identify a document provided by a server; determine thatthe document includes an annotation, the annotation identifying a userinterface that is to be displayed in connection with informationidentifying the document when the information identifying the documentis included in a search results document, the user interface comprisinga user interface element that, when selected, causes an action to beperformed by the server, and the action being performed withoutobtaining the document after the user interface element is selected;determine information relating to the user interface based on theannotation; and store, in a search index, the information relating tothe user in association with the information identifying the document.

According to some possible implementations, the information may relateto the user interface specifies properties of the user interface elementand one or more other possible user interface elements of the userinterface.

According to some possible implementations, when storing the informationrelating to the user interface, the processor may: determine a metricfor the user interface, the metric relating to a source of the documentor a type of the user interface element; determine whether the metricsatisfies a threshold; and store the information relating to the userinterface and the metric in the search index when the metric satisfiesthe threshold.

According to some possible implementations, a method may include:receiving, by at least one of one or more computing devices, a queryfrom a user device; identifying, by at least one of the one or morecomputing devices, a document based on the query; obtaining, by at leastone of the one or more computing devices, user interface information anda metric associated with the document, the user interface informationidentifying a user interface that is to be visually displayed inconnection with the information identifying the document when theinformation identifying the document is included in a search resultsdocument, the user interface including a user interface element that,when selected, causes an action to be performed in connection with thedocument, the action being performed without obtaining the documentafter the user interface element is selected, and the metric reflectinga measure of quality of the document; determining, by at least one ofthe one or more computing devices, that the metric satisfies athreshold; including, by at least one of the one or more computingdevices and based on the metric satisfying the threshold, particularinformation, in the search results document, for causing the userinterface to be displayed in connection with the information identifyingthe document; and providing, by at least one of the one or morecomputing devices, the search results document to the user device.

According to some possible implementations, including the particularinformation in the search results document may include: determining aranking of the document in a ranked list of document associated with thequery; determining whether the ranking satisfies a different threshold;and including the particular information in the search results documentwhen the metric satisfies the threshold and the ranking satisfies thedifferent threshold.

According to some possible implementations, including the particularinformation in the search results document may include: determining,when the metric satisfies the threshold and based on the metric, amaximum amount of space available for the user interface; determining,based on the user interface information, a minimum amount of spacerequested for the user interface; and including the particularinformation in the search results document when the minimum amount ofspace requested for the user interface is less than the maximum amountof space available for the user interface.

According to some possible implementations, a system may include one ormore processors to: receive a query from a user device; determine a listof documents based on the query, the list of documents including firstinformation that identifies a particular document; obtain, based on thefirst information, second information and a metric relating to theparticular document, the second information describing a user interfacethat is to be visually displayed in connection with the firstinformation when the first information is included in a search resultsdocument, the user interface including a user interface element that,when selected, causes an action to be performed in connection with theparticular document, the action being performed without obtaining theparticular document after the user interface element is selected, andthe metric reflecting a measure of quality of the particular document;determine that the metric satisfies a threshold; include, based on themetric satisfying the threshold and in the search results document,third information that causes the user interface to be displayed inconnection with the first information; and provide the search resultsdocument to the user device.

According to some possible implementations, when including the thirdinformation, the one or more processors may: determine, when the metricsatisfies the threshold and based on the metric, a maximum number ofelements to be included in the user interface; select, based on themaximum number of elements, the user interface element and one or moreother elements that are described in the second information; generatethe third information based on the user interface element and the one ormore other elements, and include the third information in the searchresults document.

According to some possible implementations, when including the thirdinformation, the one or more processors may: determine a ranking of allpossible user interface elements described in the second information;determine a quantity of user interface elements to be included in theuser interface when the user interface is displayed in connection withthe first information; select, from the all possible user interfaceelements, the user interface element and one or more other elementsbased on the quantity and the ranking; generate the third informationbased on the user interface element and the one or more other elements;and include the third information in the search results document.

The above discussion mentions examples in which some implementations maybe implemented via one or more methods performed by one or moreprocessors of one or more devices. In some implementations, one or moresystems and/or one or more devices may be configured to perform one ormore of the acts mentioned above. In some implementations, acomputer-readable medium may include computer-executable instructionswhich, when executed by one or more processors, cause the one or moreprocessors to perform one or more of the acts mentioned above.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate one or more implementationsdescribed herein and, together with the description, explain theseimplementations. In the drawings:

FIGS. 1A-1C are diagrams illustrating an overview of an exampleimplementation described herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods described herein may be implemented;

FIG. 3 shows an example of a generic computing device and a genericmobile computing device;

FIGS. 4-5B are flow charts illustrating an example process forassociating keywords, information regarding a user interface, and staticmetrics with information identifying a web page;

FIGS. 6 are 7 are flow charts illustrating an example process forproviding a search results document; and

FIGS. 8A-8E illustrate an example of providing a search resultsdocument.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

Systems and/or methods, as described herein, may receive a search queryfrom a user device, generate a search results document based on thesearch query, and provide the search results document to the userdevice. A search result, in the search results document, may beassociated with a user interface that allows a user to perform anaction, such as initiating the purchase of a product. Systems and/ormethods, as described herein, may cause the user interface to bevisually displayed in connection with the search result, when the searchresults document is rendered for display at the user device.

FIGS. 1A-1C are diagrams illustrating an overview 100 of an exampleimplementation described herein. Assume, for example, that an operatorof an online store (e.g., www.carshop.com) creates a web page. The webpage may be associated with a user interface. The user interface may bevisually displayed in connection with information identifying the webpage when the web page is included in a search results document providedby a search system. In one example, as shown in FIG. 1A, the web pagemay include an annotation. The annotation may describe the userinterface by identifying a document that includes information about theuser interface or by describing one or more user interface elements ofthe user interface.

As further shown in FIG. 1A, a data server may store the web page, and asearch system may crawl the web page. The search system may create alist of keywords based on content of the web page and/or informationassociated with the web page. The search system may further determineinformation regarding the user interface based on the annotation. Thesearch system may also determine static metrics for the user interfacebased on an address associated with the web page and/or the informationregarding the user interface. An example of a static metric may be ascore that reflects a measure of quality of the web page. The searchsystem may store the keywords associated with the web page, theinformation regarding the user interface, and/or the static metrics in asearch index. In doing so, the search system may associate, in thesearch index, the keywords associated with the web page, the informationregarding the user interface, and/or the static metrics with informationidentifying the web page.

Further assume that a user is interested in buying a new car. As shownin FIG. 1B, the user may use a user device to submit, to the searchsystem, a search query that includes text (e.g., “new car”) to searchfor web pages that relate to the term “new car.” The search system mayuse the search index to identify web pages based on the search query.The search system may obtain information regarding user interfaces andstatic metrics that are associated with the identified web pages. Thesearch system may generate a search results document based on theidentified web pages, the information regarding user interfaces, and thestatic metrics. In doing so, the search system may determine, based onthe static metrics for the user interface, whether to includeinformation for displaying the user interface, in connection withinformation identifying the www.carshop.com web page, in the searchresults document. The search system may provide the search resultsdocument to the user device.

The user device may receive the search results document, and may causeall or a portion of the search results document to be displayed to theuser, as shown in FIG. 1C. As further shown in FIG. 1C, when the searchsystem determines to include information for displaying the userinterface in the search results document, the user device may displaythe user interface in connection with information identifying thewww.carshop.com web page. The user may use elements of the userinterface, such as a zip code text entry field and a buy button, toperform an action without visiting the www.carshop.com web page.Instead, the user will visit a different web page of the www.carshop.comwebsite. The different web page is not identified in the search resultsdocuments, but is more advanced in a workflow for performing the actionassociated with purchasing a car via www.carshop.com. For example, thedifferent web page may relate to providing payment information topurchase the car.

As a result, the user does not have to waste time by visiting the webpage, or another web page, to perform the action. Furthermore, anoperator of the search system and the operator of the online store donot need to enter into a formal agreement in order for the userinterface to be visually displayed in connection with informationidentifying the web page when the information identifying the web pageis included in the search results document provided by the searchsystem.

While the following description refers to a web page, implementations,described herein, are equally applicable to other types of documents. Adocument may refer to any machine-readable and machine-storable workproduct. A document may include, for example, an e-mail, a website, abusiness listing, a file, a combination of files, one or more files withembedded links to other files, a news group posting, a blog, anadvertisement, an image, a video, a digital map, etc. A document mayinclude textual information, embedded information, such as metainformation, images, hyperlinks, user interface elements, etc., and/orembedded instructions, such as Javascript, etc.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods described herein may be implemented. As shown in FIG. 2,environment 200 may include a user device 210, a web search enginesystem 220, a data server 230, and a network 240. One user device 210,one web search engine system 220, one data server 230, and one network240 have been illustrated in FIG. 2 for simplicity. In practice, theremay be additional user devices 210, web search engine systems 220, dataservers 230, and/or networks 240.

User device 210 may include any device that is capable of communicatingwith web search engine system 220 and data server 230 via network 240.In one implementation, user device 210 may take the form of a personalcomputer, a laptop, a tablet computer, a smart phone or another type ofmobile telephone device, a personal digital assistant (PDA), a personalmedia player, a set-top box (STB) connected to a video display device(e.g., a television), or any other type of device capable ofcommunicating with, for example, web search engine system 220. Inanother implementation, user device 210 may represent multiple devicesoperated by a user, including, for example, a personal computer and amobile device.

Web search engine system 220 may include one or more server devicesand/or one or more computer systems that process, search, and/or indexweb pages. In one example, web search engine system 220 may include acrawling component, an indexing component, a search index, and/or asearching component. The crawling component, the indexing component,and/or the searching component may be implemented by a processor, of websearch engine system 220, executing instructions. The search index maybe stored in a memory of web search engine system 220.

The crawling component may crawl web pages hosted by one or moreservers, such as data server 230. In some implementations, the crawlingcomponent may operate from a list of addresses to fetch thecorresponding web pages from a corpus of web pages, such as the web. Thecrawling component may extract the addresses, such as URLs, associatedwith outgoing links in the web pages and add the addresses to the listof addresses to be crawled. The crawling component may also storeinformation associated with the web pages, such as all or part of theweb pages, in a memory. For example, the crawling component may send arequest to data server 230 for a web page, may receive the web page fromdata server 230, and may store information associated with the web pagein the memory.

The indexing component may process the web pages identified by thecrawling component. In some implementations, the indexing component mayextract information from an identified web page and associate, in thesearch index, keywords, based on the extracted information, withinformation identifying the web page. The extracted information mayinclude text or hypertext markup language (HTML) code included in theweb page and/or other information that is located external to the webpage. For example, the indexing component may extract text and HTML codefrom a crawled web page, extract individual terms and/or other data fromthe text and HTML code, and store those terms and/or other data, askeywords, in the search index. The indexing component may also obtainother information related to the crawled web page and determine keywordsbased on the other information.

Additionally, the indexing component may determine that a particular webpage includes a particular type of annotation. The annotation mayspecify that a user interface is to be visually displayed in connectionwith information identifying the particular web page when theinformation identifying the particular web page is included in a searchresults document provided by the searching component. The indexingcomponent may determine information regarding the user interface basedon the annotation, and may store the information regarding the userinterface, in the search index, in association with the informationidentifying the particular web page.

Each entry in the search index may include a term or other data storedin association with a list of web pages in which the term or other dataappears and the location within the web page where the term or otherdata appears. In another implementation, each entry in the search indexmay include a web page, a list of terms that appear within the web page,and/or other information (e.g., metadata) associated with the web page.Additionally, an entry in the search index may include informationregarding a user interface that is to be visually displayed inconnection with information identifying the web page when theinformation identifying the web page is included in a search resultsdocument provided by the searching component. The entry may also includestatic metrics for the user interface. As described above, a staticmetric may refer to a score that reflects a measure of quality of theweb page.

The searching component may receive a search query, and may perform asearch, by using the search index, based on the search query. Forexample, the searching component may compare the terms of the searchquery to terms in the search index to obtain a list of search results.Each search result may identify a web page. Additionally, oralternatively, the searching component may receive search results,relevant to the search query, from one or more other search systems (notshown).

The searching component may generate scores for the search results. Inone implementation, the score, for a search result, may reflect ameasure of relevance of the corresponding web page to the search query.For example, the score may reflect the measure of relevance of thecorresponding web page to the one or more search terms in the searchquery.

Additionally, or alternatively, the score, for a search result, mayreflect a measure of quality of the corresponding web page. In theseimplementations, the search query may be used to identify a relevant webpage, which is scored based on the measure of quality of the web page.Several techniques exist for measuring the quality of a web page, suchas a technique based on the source of the web page, a technique based onlinks to or from the web page, a technique based on an age of the webpage, a technique based on user accesses of the web page, and/or othertechniques.

In some implementations, the score, for a search result, may reflect acombination of a measure of relevance of the corresponding web page to asearch query and a measure of quality of the corresponding web page. Insome implementations, the score, for a search result, may reflect aweighted combination of a measure of relevance of the corresponding webpage to a search query and a measure of quality of the corresponding webpage, where the measure of relevance may be weighted differently fromthe measure of quality. In some implementations, the score, for a searchresult, may be determined in another manner.

The searching component may rank the search results based on the scores.For example, the searching component may create a search resultsdocument and sort the search results, in the search results document,based on the scores of the search results. In one possibleimplementation, the searching component may provide a search resultsdocument that includes information identifying the ranked searchresults. Each search result, included in the search results document,may include an address associated with a corresponding web page, asnippet of content extracted from the web page, a user interfaceassociated with the web page, and/or other information associated withthe web page, the address, and/or the user interface.

Data server 230 may include a server device or a collection of serverdevices that may be co-located or remotely located. In someimplementations, data server 230 may be implemented within a single,common server device or a single, common collection of server devices.In some implementations, data server 230 may host microsites. In someimplementations, data server 230 may be affiliated with a same entity(e.g., party, organization, business, company, etc.) as web searchengine system 220. In some implementations, data server 230 may not beaffiliated with the same entity as web search engine system 220.

Network 240 may include any type of network, such as a local areanetwork (“LAN”), a wide area network (“WAN”), a telephone network, suchas the Public Switched Telephone Network (“PSTN”) or a cellular network,an intranet, the Internet, or a combination of networks. User devices210, web search engine system 220, and data server 230 may connect tonetwork 240 via wired and/or wireless connections. In other words, anyone of user devices 210, web search engine system 220, and/or dataserver 230 may connect to network 240 via a wired connection, a wirelessconnection, or a combination of a wired connection and a wirelessconnection.

Although FIG. 2 shows example devices/networks of environment 200, inother implementations, environment 200 may include additionaldevices/networks, fewer devices/networks, different devices/networks, ordifferently arranged devices/networks than are shown in FIG. 2.Alternatively, or additionally, one or more of the devices ofenvironment 200 may perform one or more functions described as beingperformed by another one or more of the devices of environment 200.Furthermore, two or more of the devices, of FIG. 2, may be implementedwithin a single device, or a single device of FIG. 2 may be implementedas multiple, distributed devices.

FIG. 3 is a diagram of an example of a generic computing device 300 anda generic mobile computing device 350, which may be used with thetechniques described here. Generic computing device 300 or genericmobile computing device 350 may correspond to, for example, user device210, web search engine system 220, and/or data server 230. Each of userdevice 210, web search engine system 220, and/or data server 230 mayinclude one or more computing devices 300 or mobile computing devices350 and/or one or more components of computing devices 300 or one ormore components of mobile computing devices 350.

Computing device 300 is intended to represent various forms of digitalcomputers, such as laptops, desktops, workstations, personal digitalassistants, servers, blade servers, mainframes, and other appropriatecomputers. Mobile computing device 350 is intended to represent variousforms of mobile devices, such as personal digital assistants, cellulartelephones, smart phones, tablet computers, and other similar computingdevices. The components shown in FIG. 3, their connections andrelationships, and their functions, are meant to be examples only, andare not meant to limit implementations described herein.

Computing device 300 may include a processor 302, a memory 304, astorage device 306, a high-speed interface 308 connecting to memory 304and high-speed expansion ports 310, and a low-speed interface 312connecting to a low-speed expansion port 314 and a storage device 306.Each of components 302, 304, 306, 308, 310, 312, and 314, areinterconnected using various buses, and may be mounted on a commonmotherboard or in other manners as appropriate. Processor 302 canprocess instructions for execution within computing device 300,including instructions stored in memory 304 or on storage device 306 todisplay graphical information for a graphical user interface (GUI) on anexternal input/output device, such as display 316 coupled to high-speedinterface 308. In other implementations, multiple processors and/ormultiple buses may be used, as appropriate, along with multiple memoriesand types of memory. Also, multiple computing devices 300 may beconnected, with each device providing portions of the necessaryoperations, as a server bank, a group of blade servers, or amulti-processor system, etc.

Memory 304 stores information within computing device 300. In oneimplementation, memory 304 includes a volatile memory unit or units. Inanother implementation, memory 304 may include a non-volatile memoryunit or units. Memory 304 may also be another form of computer-readablemedium, such as a magnetic or optical disk. A computer-readable mediummay refer to a non-transitory memory device. A memory device may referto storage space within a single storage device or spread acrossmultiple storage devices.

Storage device 306 is capable of providing mass storage for computingdevice 300. In one implementation, storage device 306 may be or containa computer-readable medium, such as a floppy disk device, a hard diskdevice, an optical disk device, or a tape device, a flash memory orother similar solid state memory device, or an array of devices,including devices in a storage area network or other configurations. Acomputer program product can be tangibly embodied in an informationcarrier. The computer program product may also contain instructionsthat, when executed, perform one or more methods, such as thosedescribed herein. The information carrier is a computer ormachine-readable medium, such as memory 304, storage device 306, or amemory on processor 302.

High-speed interface 308 manages bandwidth-intensive operations forcomputing device 300, while low-speed interface 312 manages lowerbandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, high-speed interface 308 iscoupled to memory 304, display 316 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 310, which may acceptvarious expansion cards (not shown). In this implementation, low-speedinterface 312 may be coupled to storage device 306 and low-speedexpansion port 314. Low-speed expansion port 314, which may includevarious communication ports (e.g., USB, Bluetooth, Ethernet, wirelessEthernet, etc.), may be coupled to one or more input/output devices,such as a keyboard, a pointing device, a scanner, or a networking devicesuch as a switch or router, e.g., through a network adapter.

Computing device 300 may be implemented in a number of different forms,as shown in the figure. For example, computing device 300 may beimplemented as a standard server 320, or multiple times in a group ofsuch servers. Computing device 300 may also be implemented as part of arack server system 324. In addition, computing device 300 may beimplemented in a personal computer, such as a laptop computer 322.Alternatively, components from computing device 300 may be combined withother components in a mobile device (not shown), such as mobilecomputing device 350. Each of such devices may contain one or more ofcomputing devices 300, 350, and an entire system may be made up ofmultiple computing devices 300, 350 communicating with each other.

Mobile computing device 350 may include a processor 352, a memory 364,an input/output (“I/O”) device, such as a display 354, a communicationinterface 366, and a transceiver 368, among other components. Mobilecomputing device 350 may also be provided with a storage device, such asa micro-drive or other device, to provide additional storage. Each ofthe components 352, 364, 354, 366, and 368 are interconnected usingvarious buses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

Processor 352 can execute instructions within mobile computing device350, including instructions stored in memory 364. Processor 352 may beimplemented as a chipset of chips that include separate and multipleanalog and digital processors. Processor 352 may provide, for example,for coordination of the other components of mobile computing device 350,such as control of user interfaces, applications run by mobile computingdevice 350, and wireless communication by mobile computing device 350.

Processor 352 may communicate with a user through control interface 358and display interface 356 coupled to a display 354. Display 354 may be,for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) oran OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. Display interface 356 may include appropriatecircuitry for driving display 354 to present graphical and otherinformation to a user. Control interface 358 may receive commands from auser and convert the commands for submission to processor 352. Inaddition, an external interface 362 may be provided in communicationwith processor 352, so as to enable near area communication of mobilecomputing device 350 with other devices. External interface 362 mayprovide, for example, for wired communication in some implementations,or for wireless communication in other implementations, and multipleinterfaces may also be used.

Memory 364 stores information within mobile computing device 350. Memory364 can be implemented as one or more of a computer-readable medium ormedia, a volatile memory unit or units, or a non-volatile memory unit orunits. Expansion memory 374 may also be provided and connected to mobilecomputing device 350 through expansion interface 372, which may include,for example, a SIMM (Single In Line Memory Module) card interface. Suchexpansion memory 374 may provide extra storage space for device 350, ormay also store applications or other information for mobile computingdevice 350. Specifically, expansion memory 374 may include instructionsto carry out or supplement the processes described herein, and mayinclude secure information also. Thus, for example, expansion memory 374may be provided as a security module for mobile computing device 350,and may be programmed with instructions that permit secure use of mobilecomputing device 350. In addition, secure applications may be providedvia the SIMM cards, along with additional information, such as placingidentifying information on the SIMM card in a non-hackable manner.

Expansion memory 374 may include, for example, flash memory and/or NVRAMmemory. In one implementation, a computer program product is tangiblyembodied in an information carrier. The computer program productcontains instructions that, when executed, perform one or more methods,such as those described above. The information carrier is a computer-ormachine-readable medium, such as memory 364, expansion memory 374, or amemory on processor 352, that may be received, for example, overtransceiver 368 or external interface 362.

Mobile computing device 350 may communicate wirelessly throughcommunication interface 366, which may include digital signal processingcircuitry where necessary. Communication interface 366 may provide forcommunications under various modes or protocols, such as GSM voicecalls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, orGPRS, among others. Such communication may occur, for example, throughtransceiver 368. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 370 mayprovide additional navigation- and location-related wireless data tomobile computing device 350, which may be used as appropriate byapplications running on mobile computing device 350.

Mobile computing device 350 may also communicate audibly using audiocodec 360, which may receive spoken information from a user and convertthe received spoken information to digital information. Audio codec 360may likewise generate audible sound for a user, such as through aspeaker, e.g., in a handset of mobile computing device 350. Such soundmay include sound from voice telephone calls, may include recorded sound(e.g., voice messages, music files, etc.) and may also include soundgenerated by applications operating on mobile computing device 350.

Mobile computing device 350 may be implemented in a number of differentforms, as shown in the figure. For example, mobile computing device 350may be implemented as a cellular telephone 380. Mobile computing device350 may also be implemented as part of a smart phone 382, personaldigital assistant, or other similar mobile device.

Various implementations of the systems and techniques described hereincan be realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementations in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications, or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium” and“computer-readable medium” refer to any apparatus and/or device (e.g.,magnetic discs, optical disks, memory, Programmable Logic Devices(“PLDs”)) used to provide machine instructions and/or data to aprogrammable processor, including a machine-readable medium thatreceives machine instructions as a machine-readable signal. The term“machine-readable signal” refers to any signal used to provide machineinstructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed herein can be implemented on a computer having a displaydevice (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display)monitor) for displaying information to the user and a keyboard and apointing device (e.g., a mouse or a trackball) by which the user canprovide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback (e.g., visualfeedback, auditory feedback, or tactile feedback); and input from theuser can be received in any form, including acoustic, speech, or tactileinput.

The systems and techniques described herein can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

FIGS. 4-5B are flow charts illustrating an example process 400 forassociating keywords, information regarding a user interface, and staticmetrics with information identifying a web page. In one implementation,web search engine system 220 may perform process 400. In otherimplementations, one or more other devices, separate from, or incombination with, web search engine system 220, may perform some or allof process 400.

As shown in FIG. 4, process 400 may include obtaining a web page (block410). For example, assume that an operator of data server 230 is anonline merchant. Data server 230 may provide web pages for an onlinestore. The web pages may include a web page for purchasing a particularitem. The web page may include, for example, a quantity text entry fieldfor entering a quantity of the particular item to be purchased, a zipcode text entry field for entering a zip code of a user, and a buybutton to add the quantity of the particular item to an online shoppingcart of the online store. Assume that the operator wants to allow theuser to initiate a process for purchasing the particular item withoutvisiting the web page. The operator may include, in the HTML code forthe web page, an annotation. The annotation may include informationrelating to a user interface that is to be visually displayed inconnection with information identifying the web page when theinformation identifying the web page is included in a search resultsdocument provided by web search engine system 220. Additionally, oralternatively, the annotation may include information that points to acompanion document that includes information relating to the userinterface. In either event, the user interface may allow the user toinitiate the process for purchasing the particular item without visitingthe web page.

Data server 230 may store the web page, and web search engine system 220may crawl the web page. The crawling may include using an address of theweb page to obtain the web page, and storing all or a portion of the webpage in a memory.

Process 400 may further include determining keywords based on content ofthe web page (block 420). For example, web search engine system 220 mayextract information from the text and/or HTML code of the web page. Websearch engine system 220 may determine the keywords based on theextracted information.

Process 400 may also include determining information regarding a userinterface (block 430). In one example implementation, process block 430may include the process blocks depicted in FIG. 5A. As shown in FIG. 5A,process block 430 may include determining that the annotation includes areference to a companion document (block 510), obtaining the companiondocument based on the reference (block 520), and extracting informationregarding the user interface from the companion document (block 530). Inone implementation, web search engine system 220 may determine that theannotation, included in the web page, includes a reference, such as“<link rel=“actions” href=“myactions.xml”/>,” pointing to a companiondocument. Web search engine system 220 may obtain the companiondocument, from data server 230, based on the reference.

The companion document may include information regarding the userinterface. The information may include, for example, a color of the userinterface, a size of the user interface, how the user interface is to bedisplayed (e.g., whether the user interface is to be displayed in thesearch results document, as a pop-up window, when, for example, a cursoris hovered above a link of the web page in the search results document,or in another manner), possible layout(s) of elements in the userinterface, relationship(s) between the user interface elements, etc. Theinformation may further include, for each user interface element, a sizeof the user interface element, a font for text in the user interfaceelement, a color of the user interface element, an action that isperformed when the user interface element is selected, etc. In someimplementations, the information may also include one or more rules forselecting one or more of the user interface elements for the userinterface. In one example, a rule may specify that one or more of theuser interface elements always need to be included in the user interfacewhenever the user interface is displayed. In another example, a rule mayspecify that one user interface element (e.g., the zip code text entryfield or the quantity text entry field) cannot be included in the userinterface without another user interface element (e.g., the buy button).Web search engine system 220 may extract the information regarding theuser interface from the companion document.

In another example implementation, process block 430 may include theprocess blocks depicted in FIG. 5B. As shown in FIG. 5B, process block430 may include determining that the web page includes a particular typeof annotations (block 540), extracting the annotations from the web page(block 550), and determining information regarding the user interfacebased on the extracted annotations (block 560). For example, web searchengine system 220 may determine that the annotation is one of multipleannotations, of a particular type, that are included in the HTML code ofthe web page. The particular type may indicate that the user interfaceis to be visually displayed in connection with information identifyingthe web page when the information identifying the web page is includedin the search results document provided by web search engine system 220.Each annotation, of the particular type, may correspond to an element ofthe user interface and/or the web page. Further to the example above,the annotations may include a first annotation that corresponds to thequantity text entry field, a second annotation that corresponds to thezip code text entry field, and a third annotation that corresponds tothe buy button. As an example, the third annotation may include thefollowing text: <a rel=“action”href=“http://example.com/products/prod-a/buy”/> Buy</a>. Web searchengine system 220 may determine that the web page includes theparticular type of annotations by analyzing the HTML code of the webpage and detecting the presence of the annotations in the HTML code.

Web search engine system 220 may extract the annotations from the webpage, and may determine the information regarding the user interfacebased on the extracted annotations. For example, web search enginesystem 220 may determine that the user interface includes the buy buttonbased on the third annotation. Web search engine system 220 may furtherdetermine, for example, that the buy button includes a “Buy” caption,and that the buy button may be used by the user to perform a particularaction. The particular action may include transmitting the quantityentered into the quantity text entry field, and/or the zip code enteredinto the zip code text entry field, to data server 230. The particularaction may further include displaying, based on the quantity and/or thezip code, another web page that is required for completing the processfor purchasing of the particular item. The other web page may include,for example, a checkout web page of the online store.

In one example implementation, the quantity text entry field maycorrespond to a first query parameter and the zip code text entry fieldmay correspond to a second query parameter. For example, when a userenters a zip code (e.g., 91004) into the zip code text entry field andselects the buy button, the user interface may navigate to the other webpage by using a particular address (e.g.,http://example.com/products/prod-a/buy?zip=91004) that includes thefirst query parameter (e.g., zip=91004).

Returning to FIG. 4, process 400 may also include determining staticmetrics for the user interface (block 440). In one implementation, websearch engine system 220 may determine static metrics for the userinterface based on an address (e.g., a domain name) associated with theweb page and/or the types of the elements included in the userinterface. In one example, web search engine system 220 may determine,based on the address, a static metric based on a score associated withthe web page. The score may reflect a measure of quality of the webpage. As discussed above, several techniques exist for measuring thequality of a web page, such as a technique based on the source of theweb page, a technique based on an age of the web page, a technique basedon user accesses of the web page, a technique based on links to and/orfrom the web page, and/or other techniques. For example, a score may behigher for a web page from a domain of a popular web site than for a webpage from a domain of a less popular web site.

Additionally, or alternatively, web search system 220 may determine theparticular address associated with the other web page. Web search enginesystem 220 may determine, based on the particular address, a staticmetric based on a different score associated with the other web page.The different score may reflect a measure of quality of the other webpage.

Additionally, or alternatively, web search engine system 220 maydetermine a static metric for each one of the user interface elements.For example, web search engine system 220 may assign, to a userinterface element, a value that is within a particular range based onhow frequently a type of the user interface element is used by userscompared to other types of user interface elements. For example, assumethat buy buttons are used more frequently than all other types of userinterface elements; assume that text entry fields for enteringquantities are used less frequently than buy buttons; and assume thattext entry fields for entering quantities are used more frequently thantext entry fields for entering zip codes. In this example, assume thatweb search engine system 220 assigns a value of 10 to the buy button, avalue of 7 to the quantity text entry field, and a value of 3 to the zipcode text entry field. The static metrics for the user interface mayinclude the values assigned to the elements of the user interface.

Additionally, or alternatively, web search engine system 220 maydetermine static metric(s) based on a quality of the user interface. Websearch engine system 220 may determine the quality of the user interfacebased one or more factors, such as a click-through rate of the userinterface, a terseness of the wording of the user interface, a wordinessof the wording of the user interface, an amount of spelling mistakes inthe wording of the of the user interface, and/or a size of the userinterface.

Process 400 may also include associating, in a search index, thekeywords, the information regarding the user interface, and the staticmetrics with the web page in a search index (block 450). In oneimplementation, web search engine system 220 may store the keywords, theinformation regarding the user interface, and the static metrics in asearch index. In doing so, web search engine system 220 may associate,in the search index, the keywords, the information regarding the userinterface, and the static metrics with information identifying the webpage, such as a network address of the web page.

In another implementation, web search engine system 220 may determinewhether the score associated with the web page satisfies a particularthreshold. Web search engine system 220 may store, in the search index,the keywords associated with the web page, and not the informationregarding the user interface or the static metrics, in association withinformation identifying the web page when the score does not satisfy theparticular threshold. In other words, web search engine system 220 maynot store the information regarding the user interface or the staticmetrics when the score, for the web page, does not satisfy theparticular threshold. Web search engine system 220 may store thekeywords, the information regarding the user interface, and the staticmetrics in the search index when the score satisfies the particularthreshold.

Additionally, or alternatively, for each user interface elementidentified in the information regarding the user interface, web searchengine system 220 may determine whether a value assigned to the userinterface element satisfies a different threshold. When the valuesatisfies the different threshold, web search engine system 220 maystore, in the search index, a portion of the information regarding theuser interface associated with the user interface element. Otherwise,when the assigned value does not satisfy the different threshold, websearch engine system 220 may not store, in the search index, the portionof the information regarding the user interface associated with the userinterface element.

FIGS. 6 and 7 are flow charts illustrating an example process 600 forproviding a search results document. In one implementation, web searchengine system 220 may perform process 600. In other implementations, oneor more other devices, separate from, or in combination with, web searchengine system 220, may perform some or all of process 600.

As shown in FIG. 6, process 600 may include receiving a search queryfrom a user device (block 610). In one implementation, a user, of userdevice 210, may enter a search query into user device 210, and may causeuser device 210 to submit the search query to web search engine system220. Web search engine system 220 may receive the search query from userdevice 210.

Process 600 may further include identifying search results using asearch index and based on the search query (block 620). For example, websearch engine system 220 may identify search results by comparing termsof the search query to keywords in a search index. Each search resultmay identify a web page. As described above, web search engine system220 may determine scores for the search results, and may rank the searchresults based on the determined scores.

Process 600 may also include obtaining information regarding userinterfaces and static metrics from a search index (block 630). Asindicated above, the search index may associate information identifyinga web page with information regarding a user interface and staticmetrics for the user interface. Web search engine system 220 may use theinformation identifying the web page to obtain the information regardingthe user interface and the static metrics from the search index.

In one implementation, web search engine system 220 may obtain suchinformation, including information regarding user interfaces and staticmetrics, for all search results for which such information is stored inthe search index. In another implementation, web search engine system220 may obtain such information, if available, for only a particularquantity of search results that are ranked above a particular thresholdand/or that are associated with scores that satisfy a differentthreshold. For example, web search engine system 220 may obtain suchinformation, if available, for only the top ten search results. In yetanother implementation, web search engine system 220 may obtain suchinformation, if available, for only those search results that satisfysome criteria. For example, web search engine system 220 may obtain suchinformation, if available, for only search results that are associatedwith addresses that include “.com.” as a top-level domain. In still yetanother implementation, web search engine system 220 may obtain suchinformation based on criteria configured/provided by the user of userdevice 210. For example, web search engine system 220 may not obtain anysuch information when the user indicates that the user does not want anyuser interfaces displayed in connection with information identifying theweb pages identified by the search results.

Process 600 may also include generating a search results document basedon the identified search results, the information regarding the userinterfaces, and the static metrics (block 640). For example, web searchengine system 220 may generate a search results document that includes alist of the identified search results. Process block 640 may include theprocess blocks depicted in FIG. 7. Web search engine system 220 mayperform the process depicted in FIG. 7 for each of the identified searchresults for which the search index stores information regarding a userinterface.

As shown in FIG. 7, process block 640 may include determining, for a webpage, whether a user interface is to be provided in the search resultsdocument (block 710). In one implementation, web search engine system220 may determine whether a particular static metric (e.g., a staticmetric based on a score associated with the web page) is higher than afirst threshold, whether a rank of the search result associated the webpage is higher than a second threshold, and/or whether a relevancescore, which reflects a measure of the relevance of the correspondingweb page to the one or more search terms in the search query, is higherthan a third threshold. Web search engine system 220 may determine thata user interface is to be provided, in the search results document, inconnection with information identifying the web page when the particularstatic metric is higher than the first threshold, when the rank ishigher than the second threshold, and/or when the relevance score ishigher than the third threshold. In another implementation, web searchengine system 220 may determine that a user interface is to be provided,in the search results document, in connection with informationidentifying the web page when the web page is one of the top-rankedabove search results. For example, web search engine system 220 mayprovide user interfaces for only the top five search results.Additionally, or alternatively, as discussed above, the user mayindicate whether the user wants any user interfaces displayed inconnection with information identifying web pages. Web search enginesystem 220 may determine whether a user interface is to be providedbased on such indication provided by the user.

If the user interface is not to be provided in the search resultsdocument (block 710—NO), process block 640 may include ending theprocess depicted in FIG. 7 for the web page (block 715). In oneimplementation, when web search engine system 220 determines that theuser interface is not to be provided in the search results document, websearch engine system 220 may end the process depicted in FIG. 7 for theweb page. Web search engine system 220 may the repeat the processdepicted in FIG. 7 for another web page for which information regardinga user interface has been obtained.

If the user interface is to be provided in the search results document(block 710—YES), process block 640 may include determining a maximumnumber of elements to be associated with user interface (block 720). Inone example implementation, when web search engine system 220 determinesthat the user interface is to be provided in the search resultsdocument, web search engine system 220 may determine a maximum number ofelements to be associated with the user interface. Web search enginesystem 220 may determine the maximum number of elements based on thestatic metrics and/or the ranking of the search result that includesinformation identifying the web page. For example, when the ranking ishigher than a first value and lower than a second value, web searchengine system 220 may determine that the maximum number of elements istwo elements. Additionally, or alternatively, web search engine system220 may determine a maximum size of the user interface based on thestatic metrics and/or the ranking of the search result that includesinformation identifying the web page. The maximum size may specify amaximum amount of space that can be taken up by the user interface in ascreen of user device 110.

Additionally, or alternatively, web search engine system 220 maydetermine a minimum size requested for the user interface based on theinformation regarding the user interface. The minimum size may include aquantity of elements that are to be included in the user interfaceand/or a minimum amount of space for the user interface. Web searchengine system 220 may determine whether the minimum size is greater thanthe determined maximum number of elements and/or the maximum size. Websearch engine system 220 may determine that the user interface is not tobe provided in the search results document (block 710—NO) when theminimum size is greater than the determined maximum number of elementsand/or the maximum size.

Returning to FIG. 7, process block 640 may further include selecting oneor more user interface elements for the user interface (block 730). Inone implementation, the maximum number of elements may indicate amaximum quantity, such as two, of user interface elements that can beselected. The information regarding the user interface may includeinformation about possible user interface elements that can be includedin the user interface. Web search engine system 220 may select one ormore user interface elements, from the possible user interface elements,based on the static metrics. For example, assume that the possible userinterface elements include a buy button, a review button, a quantitytext entry field, and a zip code text entry field. Web search enginesystem 220 may rank the possible user interface elements based on thestatic metrics associated with the possible user interface elements.

Assume, for example, that the static metrics specify a first value(e.g., 10) for the buy button, a second value (e.g., 5.5) for the reviewbutton, a third value (e.g., 11) for the quantity text entry field, anda fourth value (e.g., 4.5) for the zip code text entry field. Web searchengine system 220 may rank the possible user interface elements, fromhighest to lowest, as follows: the buy button, the quantity text entryfield, the review button, and the zip code text entry field. When themaximum number of elements is equal to, for example, two units, websearch engine system 220 may select the two highest-ranked userinterface elements (e.g., the buy button and the quantity text entryfield) for the user interface.

Process block 640 may also include including, in the search resultsdocument, information for causing the user interface to be displayed inconnection with information identifying the web page when the searchresults document is rendered for display (block 740). For example, websearch engine system 220 may generate information for displaying theuser interface based on the one or more selected user interfaceelements. Web search engine system 220 may include, in the searchresults document, the information for displaying the user interface inconnection with information identifying the web page. Some of theselected user interface elements may be associated with code that causesan action to be performed. For example the buy button may trigger anaction, while the quantity text entry field may provide a parameter forthe action. Therefore, the code for the action(s) is also included inthe search results document.

Returning to FIG. 6, process 600 may also include providing the searchresults document to the user device (block 650). In one implementation,web search engine system 220 may provide the search results document touser device 210. User device 210 may receive the search resultsdocument, and may cause all or a portion of the search results documentto be displayed to the user, including a user interface that may bevisually displayed in connection with information identifying a web pagethat is included in the search results document.

FIGS. 8A-8E illustrate an example of providing a search resultsdocument. FIG. 8A illustrates an example web page 800 provided by dataserver 230 of an online store. As shown in FIG. 8A, web page 800 mayinclude a web page header 802, product information 804, a quantity textentry field 806, a zip code entry field 808, an add to cart button 810,a buy now button 812, and a review product button 814.

Web page header 802 may include, for example, one or more user interfaceelements that can be used to access other web pages of a web site thatincludes web page 800. Product information 804 may include informationabout a product. The information about the product may include, forexample, an image of the product, a price of the product, a descriptionof the product, reviews of the product, etc. For this example, assumethat the product is a television. Quantity text entry field 806 mayallow a user to enter a quantity of the product that the user decides topurchase from the online store. Zip code entry field 808 may allow theuser to enter a zip code of a shipping address of the user.

When add to cart button 810 is selected by the user, an add to cartaction may occur. The add to cart action may include transmitting thequantity and/or the zip code to data server 230 from user device 210.The add to cart action may further include data server 230 adding thequantity of the product to a shopping cart of the user and providing,based on the quantity and/or the zip code, a shopping cart web page, forviewing the shopping cart of the user, to user device 210. For thisexample, assume that the address of the shopping cart web page iswww.example.com/cart/view.html. The shopping cart web page may alsoinclude buy now button 812.

When buy now button 812 is selected by the user, a buy now action mayoccur. The buy now action may include transmitting the quantity and/orthe zip code to data server 230 from user device 210. The buy now actionmay further include data server 230 adding the quantity of the productto the shopping cart of the user and providing a checkout web page 850,described further below with reference to FIG. 8E, to user device 210.For this example, assume that the address of checkout web page 850 iswww.example.com/check-out/sign-in-page.html.

When review product button 814 is selected by the user, an add reviewaction may occur. The add review action may include data server 230providing, to user device 210, an add review web page that allows theuser to add a review of the product identified in product information804.

Assume that data server 230 stores web page 800. The HTML code of webpage 800 may include an annotation. The annotation may includeinformation relating to a user interface 820 (FIG. 8B). The annotationmay specify that user interface 820 may be visually displayed inconnection with information identifying web page 800 when theinformation identifying web page 800 is included in a search resultsdocument provided by web search engine system 220.

As shown in FIG. 8B, user interface 820 may include a user interfaceheader 822, quantity text entry field 806, add to cart button 810, andbuy now button 812. User interface header 822 may include one or moreuser interface elements that are not included in web page 800. Forexample, user interface header 822 may include a text box withinstructions to enter a quantity in quantity text entry field 806 and toselect one of add to cart button 810 or buy now button 812 in order topurchase the product without visiting web page 800. Quantity text entryfield 806, add to cart button 810, and buy now button 812 of userinterface 820 may correspond to quantity text entry field 806, add tocart button 810, and buy now button 812 of web page 800.

Further to the example above, web search engine system 220 may obtainweb page 800 from data server 230. Web search engine system 220 maydetermine keywords based on the content of web page 800. Web searchengine system 220 may further determine information regarding userinterface 820 based on the annotation. Web search engine system 220 mayalso determine static metrics, for user interface 820, based on a scoreassociated with web page 800 and/or based on user interface elementtypes that are associated with quantity text entry field 806, add tocart button 810, and buy now button 812. Web search engine system 220may store, in a search index, the keywords, the information regardinguser interface 820, and the static metrics in association withinformation identifying web page 800.

FIG. 8C illustrates an example user interface 830 of web search enginesystem 220 that is used to receive a search query. As shown in FIG. 8C,user interface 830 may include a query text entry field 832 and a searchbutton 834. Assume that the user uses user device 210 to enter a searchquery “Best Brand Television” into query text entry field 832, and thatthe user selects search button 834 after entering the search query. Whenthe user selects search button 834, user device 210 may transmit thesearch query “Best Brand Television” to web search engine system 220.Web search engine system 220 may use the search index to identify a listof web pages relating to the search query.

Thereafter, web search engine system 220 may obtain, from the searchindex, the information regarding user interface 820 and the staticmetrics that are stored in association with the information identifyingweb page 800. Web search engine system 220 may generate a search resultsdocument 844 (FIG. 8D) based on the identified search results, theinformation regarding user interface 820, and the static metrics.

FIG. 8D illustrates an example user interface 840 that may display aportion of search results document 844. As shown in FIG. 8D, searchresults document 844 may include information 845 that identifies webpage 800 and user interface 820 that is displayed in connection withinformation 845. As further shown in FIG. 8D, web search engine system220 may only select user interface header 822, quantity text entry field806, and buy now button 812 for user interface 820. Accordingly, searchresults document 844 may only include information for displaying userinterface header 822, quantity text entry field 806, and buy now button812 of user interface 820.

Web search engine system 220 may transmit search results document 844 touser device 210. User device 210 may receive search results document844, and may cause all or a portion of search results document 844 to bedisplayed in user interface 840, as shown in FIG. 8D.

Information 845 identifying web page 800 may include a link to web page800. If the user selects the link, user device 210 may receive web page800 from data server 230, and may display web page 800. If the userenters a quantity into quantity text entry field 806 and selects buy nowbutton 812, user device 210 may receive checkout web page 850 (FIG. 8E).As a result, the user may access checkout web page 850 without visitingweb page 800 or the shopping cart web page. Once signed in orregistered, the user may complete the purchase of the television.

As shown in FIG. 8E, checkout web page 850 may include user interfaceelements 852 and user interface elements 854. The user may use userinterface elements 852 in order to sign-in into an existing account ofthe user. Alternatively, the user may use user interface elements 854 inorder to create a new account.

Implementations described herein may allow an owner of a web page toinclude an annotation, relating to a user interface, in the HTML code ofthe web page. The annotation may indicate that the user interface is tobe displayed in connection with information identifying the web pagewhen the information identifying the web page is included in a searchresults document provided by a web search engine system. As a result, auser may use the user interface to perform action(s) on the web pagewithout visiting the web page.

The foregoing description provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theseimplementations.

For example, while series of blocks have been described with regard toFIGS. 4-7, the order of the blocks may be modified in otherimplementations. Further, non-dependent blocks may be performed inparallel. In addition, other blocks may be provided, or blocks may beeliminated, from the described flowcharts, and other components may beadded to, or removed from, the described systems.

Also, certain portions of the implementations have been described as a“component” that performs one or more functions. The term “component”may include hardware, such as a processor, an ASIC (application-specificintegrated circuit), or an FPGA (field programmable gate array), or acombination of hardware and software (e.g., software running on ageneral purpose processor—creating a specific purpose processor).

It will be apparent that aspects described herein may be implemented inmany different forms of software, firmware, and hardware in theimplementations illustrated in the figures. The actual software code orspecialized control hardware used to implement aspects does not limitthe embodiments. Thus, the operation and behavior of the aspects weredescribed without reference to the specific software code—it beingunderstood that software and control hardware can be designed toimplement the aspects based on the description herein.

It should be emphasized that the term “comprises/comprising,” when usedin this specification, is taken to specify the presence of statedfeatures, integers, steps, or components, but does not preclude thepresence or addition of one or more other features, integers, steps,components, or groups thereof.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the possible implementations. Infact, many of these features may be combined in ways not specificallyrecited in the claims and/or disclosed in the specification. Althougheach dependent claim listed below may directly depend on only one otherclaim, the disclosure of the possible implementations includes eachdependent claim in combination with every other claim in the claim set.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. Also, as used herein, the article “a” is intended to include oneor more items and may be used interchangeably with “one or more.” Whereonly one item is intended, the term “one” or similar language is used.Further, the phrase “based on” is intended to mean “based, at least inpart, on” unless explicitly stated otherwise.

What is claimed is:
 1. A method performed by one or more computingdevices, the method comprising: identifying, by at least one of the oneor more computing devices, a document; determining, by at least one ofthe one or more computing devices, that the document includes anannotation, the annotation describing a user interface that is to bevisually displayed in connection with information identifying thedocument when the information identifying the document is included in asearch results document, the user interface including a user interfaceelement that, when selected, causes an action to be performed inconnection with the document, and the action being performed withoutobtaining the document after the user interface element is selected;obtaining, by at least one of the one or more computing devices andbased on the annotation, information relating to the user interface; andstoring, by at least one of the one or more computing devices and in asearch index, the information relating to the user interface inassociation with the information identifying the document.
 2. The methodof claim 1, where the user interface element corresponds to a seconduser interface element that is included the document, and where thesecond user interface element causes the action to be performed when thesecond user interface element is selected while the document isdisplayed at a user device.
 3. The method of claim 1, where obtainingthe information relating to the user interface comprises: determiningthat the annotation includes a reference pointing to a second document,obtaining, based on the reference, the second document from a server,and extracting the information, relating to the user interface, from thesecond document.
 4. The method of claim 1, where obtaining theinformation relating to the user interface comprises: determining, basedon the annotation, that the document includes a particular type ofannotation, extracting the annotation and one or more other annotations,of the particular type, from the document, and determining theinformation relating to the user interface based on the annotation andthe one or more other annotations.
 5. The method of claim 1, furthercomprising: determining a metric based on at least one of a source ofthe document or a type of the user interface element; storing, in thesearch index, the metric in association with the information identifyingthe document; and using the metric to determine whether the userinterface is to be visually displayed when the information identifyingthe document is included in the search results document.
 6. The methodof claim 1, further comprising: receiving a query from a user device;identifying a list of documents based on the query, the list ofdocuments including the document; obtaining, from the search index, theinformation relating to the user interface; including, in the searchresults document, information for causing the user interface to bedisplayed in connection with the information identifying the document;and providing the search results document to the user device.
 7. Themethod of claim 6, where including the information for causing the userinterface to be displayed in connection with the information identifyingthe document comprises: obtaining, from the search index, a metric thatis stored in association with the information identifying the document,determining whether the metric satisfies a threshold, and including, inthe search results document, the information for causing the userinterface to be displayed in connection with the information identifyingthe document based on the metric satisfying the threshold.
 8. The methodof claim 1, further comprising: receiving a query from a user device;obtaining a ranked list of documents results based on the query, theranked list of documents including the document; determining whether aranking of the document, in the ranked list of documents, satisfies athreshold; and including, in the search results document, informationfor causing the user interface to be displayed in connection with theinformation identifying the document based on the ranking satisfying thethreshold.
 9. A computer-readable medium comprising: a plurality ofinstructions, which when executed by at least one processor, cause theat least one processor to: identify a document; determine that thedocument includes an annotation, the annotation describing a userinterface that is to be visually displayed in connection withinformation identifying the document when the information identifyingthe document is included in a search results document, the userinterface including a user interface element that, when selected, causesan action to be performed in connection with the document, and theaction being performed without obtaining the document after the userinterface element is selected; determine information relating to theuser interface based on the annotation; and store, in a search index,the information relating to the user interface in association with theinformation identifying the document.
 10. The computer-readable mediumof claim 9, where the plurality of instructions further cause the atleast one processor to: determine a metric, for the user interface,based on a measure of quality of the document; and store, in the searchindex, the metric in association with the information identifying thedocument.
 11. The computer-readable medium of claim 10, where theplurality of instructions further cause the at least one processor to:receive a query; identify a list of documents based on the query, thelist of documents including the document; obtain the metric based on theinformation relating to the document; determine whether the metricsatisfies a threshold; include, in the search results document,information for causing the user interface to be displayed in connectionwith the information identifying the document based on the metricsatisfying the threshold; and provide the search results document to auser device.
 12. The computer-readable medium of claim 11, where theplurality of instructions further cause the at least one processor to:determine a second metric based on second information relating to asecond document in the list of documents; determine whether the secondmetric satisfies the threshold; and include, in the search resultsdocument and based on the second information relating to the seconddocument, information for causing a second user interface to bedisplayed in connection with the second information identifying thesecond document based on the second metric satisfying the threshold. 13.The computer-readable medium of claim 9, where the document is a webpage, and where the user interface element is at least one of a buttonor a text entry field.
 14. The computer-readable medium of claim 9,where the document includes a second user interface element thatcorresponds to the user interface element, where the action is performedwhen a second user interface element is selected while the document isdisplayed by a user device.
 15. A system comprising: a processor to:identify a document provided by a server, determine that the documentincludes an annotation, the annotation identifying a user interface thatis to be displayed in connection with information identifying thedocument when the information identifying the document is included in asearch results document, the user interface comprising a user interfaceelement that, when selected, causes an action to be performed by theserver, and the action being performed without obtaining the documentafter the user interface element is selected, determine informationrelating to the user interface based on the annotation, and store, in asearch index, the information relating to the user in association withthe information identifying the document.
 16. The system of claim 15,where the information relating to the user interface specifiesproperties of the user interface element and one or more other possibleuser interface elements of the user interface.
 17. The system of claim15, where, when storing the information relating to the user interface,the processor is to: determine a metric for the user interface, themetric relating to a source of the document or a type of the userinterface element, determine whether the metric satisfies a threshold,and store the information relating to the user interface and the metricin the search index when the metric satisfies the threshold.
 18. Amethod performed by one or more computing devices, the methodcomprising: receiving, by at least one of the one or more computingdevices, a query from a user device; identifying, by at least one of theone or more computing devices, a document based on the query; obtaining,by at least one of the one or more computing devices, user interfaceinformation and a metric associated with the document, the userinterface information identifying a user interface that is to bevisually displayed in connection with the information identifying thedocument when the information identifying the document is included in asearch results document, the user interface including a user interfaceelement that, when selected, causes an action to be performed inconnection with the document, the action being performed withoutobtaining the document after the user interface element is selected, andthe metric reflecting a measure of quality of the document; determining,by at least one of the one or more computing devices, that the metricsatisfies a threshold; including, by at least one of the one or morecomputing devices and based on the metric satisfying the threshold,particular information, in the search results document, for causing theuser interface to be displayed in connection with the informationidentifying the document; and providing, by at least one of the one ormore computing devices, the search results document to the user device.19. The method of claim 18, where including the particular informationin the search results document includes: determining a ranking of thedocument in a ranked list of document associated with the query,determining whether the ranking satisfies a different threshold, andincluding the particular information in the search results document whenthe metric satisfies the threshold and the ranking satisfies thedifferent threshold.
 20. The method of claim 18, where including theparticular information in the search results document includes:determining, when the metric satisfies the threshold and based on themetric, a maximum amount of space available for the user interface,determining, based on the user interface information, a minimum amountof space requested for the user interface, and including the particularinformation in the search results document when the minimum amount ofspace requested for the user interface is less than the maximum amountof space available for the user interface.
 21. A system comprising: oneor more processors to: receive a query from a user device, determine alist of documents based on the query, the list of documents includingfirst information that identifies a particular document; obtain, basedon the first information, second information and a metric relating tothe particular document, the second information describing a userinterface that is to be visually displayed in connection with the firstinformation when the first information is included in a search resultsdocument, the user interface including a user interface element that,when selected, causes an action to be performed in connection with theparticular document, the action being performed without obtaining theparticular document after the user interface element is selected, andthe metric reflecting a measure of quality of the particular document;determine that the metric satisfies a threshold; include, based on themetric satisfying the threshold and in the search results document,third information that causes the user interface to be displayed inconnection with the first information; and provide the search resultsdocument to the user device.
 22. The system of claim 21, where, whenincluding the third information, the one or more processors are to:determine, when the metric satisfies the threshold and based on themetric, a maximum number of elements to be included in the userinterface, select, based on the maximum number of elements, the userinterface element and one or more other elements that are described inthe second information, generate the third information based on the userinterface element and the one or more other elements, and include thethird information in the search results document.
 23. The system ofclaim 21, where, when including the third information, the one or moreprocessors are to: determine a ranking of all possible user interfaceelements described in the second information, determine a quantity ofuser interface elements to be included in the user interface when theuser interface is displayed in connection with the first information,select, from the all possible user interface elements, the userinterface element and one or more other elements based on the quantityand the ranking, generate the third information based on the userinterface element and the one or more other elements, and include thethird information in the search results document.